agora inbox for pgsql-hackers@postgresql.orghelp / color / mirror / Atom feed
[PATCH v52 07/10] Check for transaction block early in ExecRepack 475+ messages / 2 participants [nested] [flat]
* [PATCH v52 07/10] Check for transaction block early in ExecRepack @ 2026-04-03 15:23 Srinath Reddy Sadipiralla <srinath2133@gmail.com> 0 siblings, 0 replies; 475+ messages in thread From: Srinath Reddy Sadipiralla @ 2026-04-03 15:23 UTC (permalink / raw) Currently, executing REPACK (CONCURRENTLY) without a table name inside a transaction block throws the error "REPACK CONCURRENTLY requires explicit table name" instead of the expected transaction block error. This occurs because ExecRepack() validates the parsed options and missing relation before verifying the transaction state. This behavior is inconsistent with other utility commands like VACUUM ,REINDEX, etc; which invoke PreventInTransactionBlock() at the very start of their execution to properly reject execution inside user transactions before validating targets. Add PreventInTransactionBlock to the top of ExecRepack() to enforce the transaction block restriction early. This prevents the user from fixing a missing table error only to immediately hit a transaction block error, and also ensures consistency with rest of the commands. Author: Srinath Reddy Sadipiralla <srinath2133@gmail.com> --- src/backend/commands/repack.c | 26 ++++++++++++-------------- 1 file changed, 12 insertions(+), 14 deletions(-) diff --git a/src/backend/commands/repack.c b/src/backend/commands/repack.c index d6e446d582d..d4c1f0e7652 100644 --- a/src/backend/commands/repack.c +++ b/src/backend/commands/repack.c @@ -292,6 +292,18 @@ ExecRepack(ParseState *pstate, RepackStmt *stmt, bool isTopLevel) MyProc->statusFlags |= PROC_IN_CONCURRENT_REPACK; ProcGlobal->statusFlags[MyProc->pgxactoff] = MyProc->statusFlags; LWLockRelease(ProcArrayLock); + + /* + * Make sure we're not in a transaction block. + * + * The reason is that repack_setup_logical_decoding() could wait + * indefinitely for our XID to complete. (The deadlock detector would + * not recognize it because we'd be waiting for ourselves, i.e. no + * real lock conflict.) It would be possible to run in a transaction + * block if we had no XID, but this restriction is simpler for users + * to understand and we don't lose anything. + */ + PreventInTransactionBlock(isTopLevel, "REPACK (CONCURRENTLY)"); } /* @@ -523,21 +535,7 @@ cluster_rel(RepackCommand cmd, Relation OldHeap, Oid indexOid, * replica index OID. */ if (concurrent) - { - /* - * Make sure we're not in a transaction block. - * - * The reason is that repack_setup_logical_decoding() could wait - * indefinitely for our XID to complete. (The deadlock detector would - * not recognize it because we'd be waiting for ourselves, i.e. no - * real lock conflict.) It would be possible to run in a transaction - * block if we had no XID, but this restriction is simpler for users - * to understand and we don't lose anything. - */ - PreventInTransactionBlock(isTopLevel, "REPACK (CONCURRENTLY)"); - check_repack_concurrently_requirements(OldHeap, &ident_idx); - } /* Check for user-requested abort. */ CHECK_FOR_INTERRUPTS(); -- 2.47.3 --gp2pyozrd5pweboh Content-Type: text/x-diff; charset=utf-8 Content-Disposition: attachment; filename="v52-0008-Introduce-an-option-to-make-logical-replication-.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
* [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements @ 2026-06-03 17:15 Andres Freund <andres@anarazel.de> 0 siblings, 0 replies; 475+ messages in thread From: Andres Freund @ 2026-06-03 17:15 UTC (permalink / raw) --- .github/workflows/pg-ci.yml | 76 ++++++++++++++++++------------------- 1 file changed, 36 insertions(+), 40 deletions(-) diff --git a/.github/workflows/pg-ci.yml b/.github/workflows/pg-ci.yml index 72d306feb14..a570b9e2c8d 100644 --- a/.github/workflows/pg-ci.yml +++ b/.github/workflows/pg-ci.yml @@ -126,7 +126,10 @@ env: jobs: - # Parse "ci-os-only: ..." from the commit message and expose flags + + # Job: Determine enabled jobs + # + # Parses "ci-os-only: ..." from the commit message and exposes flags # consumed by the jobs' `if:` conditions. setup: name: Determine enabled jobs @@ -144,6 +147,7 @@ jobs: # context is not available. container_linux_ci: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI }} container_linux_ci_docs: ${{ env.CONTAINER_REPO }}/${{ env.CONTAINER_LINUX_CI_DOCS }} + steps: # Anchor reused by other jobs further down. GitHub Actions supports YAML # anchors/aliases but not merge keys, so the alias copies the whole step @@ -180,6 +184,8 @@ jobs: cat "$GITHUB_OUTPUT" + # Job: SanityCheck + # # To avoid unnecessarily spinning up a lot of VMs / containers for entirely # broken commits, have a minimal task that all others depend on. # @@ -219,6 +225,7 @@ jobs: env: # no options enabled, should be small CCACHE_MAXSIZE: "150M" + steps: - *nix_sysinfo_step @@ -238,7 +245,7 @@ jobs: ccache-${{ github.job }}-${{ github.ref_name }}- ccache-${{ github.job }}- - - &linux_prepare_workspace + - &linux_prepare_workspace_step name: Prepare workspace run: | useradd -m postgres @@ -271,7 +278,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: &ninja_build_command | + run: &ninja_build_cmd | ninja -C build -j${{env.BUILD_JOBS}} ${{env.MBUILD_TARGET}} ninja -C build -t missingdeps @@ -312,7 +319,7 @@ jobs: meson test ${{env.MTEST_ARGS}} --num-processes ${{env.TEST_JOBS}} ${{env.MTEST_TARGET}} - - &linux_collect_cores + - &linux_collect_cores_step name: Core backtraces if: failure() && !cancelled() run: src/tools/ci/cores_backtrace.sh linux /tmp/cores @@ -333,7 +340,7 @@ jobs: if-no-files-found: ignore - # Linux, Autoconf + # Job: Linux - Autoconf # # SPECIAL: # - Uses undefined & alignment sanitizers (sanitizer failures are typically @@ -398,7 +405,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -423,11 +430,11 @@ jobs: run: | make -s ${CHECK} ${CHECKFLAGS} -j${TEST_JOBS} - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 32 bit + # Job: Linux - Meson (32-bit) # # SPECIAL: # - Uses undefined behaviour and alignment sanitizers, (sanitizer failures @@ -458,7 +465,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -474,7 +481,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -515,11 +522,11 @@ jobs: build/tmp_install/usr/local/pgsql/bin/pg_ctl -D build/runningcheck stop - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step - # Linux Meson, 64 bit + # Linux - Meson (64-bit) # # SPECIAL: # - Uses address sanitizer, (sanitizer failures are typically printed in the @@ -546,7 +553,7 @@ jobs: - *nix_sysinfo_step - *checkout_step - *ccache_restore_step - - *linux_prepare_workspace + - *linux_prepare_workspace_step - name: Configure shell: *su_postgres_shell @@ -560,7 +567,7 @@ jobs: - name: Build shell: *su_postgres_shell - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -568,10 +575,12 @@ jobs: shell: *su_postgres_shell run: *meson_test_world_cmd - - *linux_collect_cores + - *linux_collect_cores_step - *upload_logs_step + # Job: macOS - Meson + # # SPECIAL: # - Enables --clone for pg_upgrade and pg_combinebackup # - Specifies configuration options that test reading/writing/copying of node trees @@ -628,8 +637,8 @@ jobs: steps: - *nix_sysinfo_step - - *checkout_step + - *ccache_restore_step - name: Setup core files run: | @@ -674,8 +683,6 @@ jobs: echo /opt/local/sbin >> "$GITHUB_PATH" echo /opt/local/bin >> "$GITHUB_PATH" - - *ccache_restore_step - - name: Configure env: PKG_CONFIG_PATH: /opt/local/lib/pkgconfig/ @@ -691,7 +698,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -708,6 +715,7 @@ jobs: - *upload_logs_step + # Job: Windows - Visual Studio windows-vs: name: Windows - Visual Studio needs: [setup, sanity-check] @@ -735,8 +743,9 @@ jobs: defaults: run: shell: cmd + steps: - - &windows_disable_defender + - &windows_disable_defender_step name: Disable Windows Defender shell: powershell run: | @@ -821,7 +830,6 @@ jobs: if (!$?) { throw 'cmdfail' } echo ::endgroup:: - # Install IPC::Run. # - recommends_policy=0 keeps cpan from pulling in IO::Tty / IO::Pty, # which don't build on Windows ("This module requires a POSIX @@ -879,6 +887,7 @@ jobs: - *upload_logs_step + # Job: Windows - MinGW - Meson windows-mingw: name: Windows - MinGW - Meson needs: [setup, sanity-check] @@ -912,7 +921,7 @@ jobs: shell: 'D:\msys64\usr\bin\bash.exe --login -eo pipefail "{0}"' steps: - - *windows_disable_defender + - *windows_disable_defender_step - *checkout_step # Relocate the preinstalled MSYS2 tree from C:\ (slow system disk) to @@ -981,7 +990,7 @@ jobs: build - name: Build - run: *ninja_build_command + run: *ninja_build_cmd - *ccache_save_step @@ -993,6 +1002,8 @@ jobs: - *upload_logs_step + # Job: CompilerWarnings + # # Test that code can be built with both gcc and clang without warnings, # with various combinations of cassert/dtrace flags. Trace probes have # a history of getting accidentally broken; the matrix is there to @@ -1017,20 +1028,10 @@ jobs: # compilers / flag combinations. CCACHE_MAXSIZE: "1G" DEFAULT_BUILD: world-bin + steps: - - - name: Sysinfo - run: | - id - uname -a - cat /proc/cmdline - ulimit -a -H && ulimit -a -S - gcc -v - clang -v - env - + - *nix_sysinfo_step - *checkout_step - - *ccache_restore_step - name: Setup workspace @@ -1055,7 +1056,6 @@ jobs: make -s -j${{env.BUILD_JOBS}} clean make -s -j${{env.BUILD_JOBS}} ${{env.DEFAULT_BUILD}} - # gcc, cassert on, dtrace off - name: gcc warnings + (cassert) if: ${{ !cancelled() }} @@ -1065,7 +1065,6 @@ jobs: CXX: ccache g++ run: *compiler_warnings_cmd - # clang, cassert off, dtrace off - name: clang warnings if: ${{ !cancelled() }} @@ -1075,7 +1074,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - # clang, cassert on, dtrace on - name: clang warnings + (cassert + dtrace) if: ${{ !cancelled() }} @@ -1085,7 +1083,6 @@ jobs: CXX: ccache clang++ run: *compiler_warnings_cmd - - name: mingw warnings (cross compilation) if: ${{ !cancelled() }} env: @@ -1094,7 +1091,6 @@ jobs: CXX: ccache x86_64-w64-mingw32ucrt-g++ run: *compiler_warnings_cmd - ### # Verify docs can be built ### -- 2.54.0.380.gc69baaf57b --lyfxwjjve3vodszg Content-Type: text/x-diff; charset=us-ascii Content-Disposition: attachment; filename="v9a-0017-ci-Don-t-run-setup-twice.patch" ^ permalink raw reply [nested|flat] 475+ messages in thread
end of thread, other threads:[~2026-06-03 17:15 UTC | newest] Thread overview: 475+ messages (download: mbox mbox.gz follow: Atom feed) -- links below jump to the message on this page -- 2026-04-03 15:23 [PATCH v52 07/10] Check for transaction block early in ExecRepack Srinath Reddy Sadipiralla <srinath2133@gmail.com> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres Freund <andres@anarazel.de> 2026-06-03 17:15 [PATCH v9a 16/22] ci: Formatting, Naming and consistency improvements Andres 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